From 1b56f2e38a54e6e3d2eb9cfcde1ff865cb0871f1 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Wed, 26 Mar 2025 13:28:37 +0100 Subject: [PATCH] gui/macOS: Properly wait for eviction result in materialised items model Signed-off-by: Claudio Cambra --- src/gui/macOS/fileprovidermaterialiseditemsmodel_mac.mm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gui/macOS/fileprovidermaterialiseditemsmodel_mac.mm b/src/gui/macOS/fileprovidermaterialiseditemsmodel_mac.mm index 646f583b4..b2fe54011 100644 --- a/src/gui/macOS/fileprovidermaterialiseditemsmodel_mac.mm +++ b/src/gui/macOS/fileprovidermaterialiseditemsmodel_mac.mm @@ -42,7 +42,8 @@ void FileProviderMaterialisedItemsModel::evictItem(const QString &identifier, co return; } - __block BOOL successfullyDeleted = YES; + __block BOOL successfullyDeleted = NO; + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); [manager evictItemWithIdentifier:identifier.toNSString() completionHandler:^(NSError *error) { if (error != nil) { @@ -51,10 +52,13 @@ void FileProviderMaterialisedItemsModel::evictItem(const QString &identifier, co Systray::instance()->showMessage(tr("Error"), tr("An error occurred while trying to delete the local copy of this item: %1").arg(errorDesc), QSystemTrayIcon::Warning); - successfullyDeleted = NO; + } else { + successfullyDeleted = YES; } + dispatch_semaphore_signal(semaphore); }]; + dispatch_semaphore_wait(semaphore, dispatch_time(DISPATCH_TIME_NOW, 3 * NSEC_PER_SEC)); if (successfullyDeleted == NO) { return; } -- 2.30.2